package com.hskn.hss.module.tlcar.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.hskn.hss.core.annotation.Excel;
import com.hskn.hss.module.gridbind.entity.GridBind;
import com.hskn.hss.module.tlcarmodel.entity.TlCarModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author hskn
 * @since 2021-05-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class TlCar implements Serializable {

    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    @TableField(exist = false)
    private String ids;
    /**
     * 车牌号
     */
    @Excel(name = "车牌号(必填)")
    private String carnumber;

    /**
     * 车辆所属部门
     */
    private String cardeptid;
    @Excel(name = "所属机构(必填)")
    @TableField(exist = false)
    private String cardeptname;

    /**
     * 油卡编号
     */
    private String oilcardnum;

    /**
     * 作业大类
     */
    private String carcategory;
    @Excel(name = "作业类型大类(必填)",prompt = "请填写系统中存在的作业类型，否则将影响导入")
    @TableField(exist = false)
    private String carcategoryname;

    private String carcategoryitem;
    @Excel(name = "作业类型小类(必填)",prompt = "请填写系统中存在的作业类型，否则将影响导入")
    @TableField(exist = false)
    private String carcategoryitemname;
    /**
     * 车辆类型id
     */
    private String cartypeid;
    @Excel(name = "车辆类型(必填)")
    @TableField(exist = false)
    private String carTypeName;

    /**
     * 车辆型号id
     */
    private String carmodelid;
    @Excel(name = "车辆型号(必填)",prompt = "请填写系统中存在的车辆型号，否则将影响导入")
    @TableField(exist = false)
    private String carmodelname;

    @TableField(exist = false)
    private String drivemodel;

    /**
     * 车辆所属权  自用 、租用 、甲方
     */
    @Excel(name = "车辆所属权(必填)",prompt = "自用、租用、甲方")
    private String carattribution;

    /**
     * 发动机编号
     */
    private String enginenumber;

    /**
     * 车架号
     */
    private String vehiclenuumber;

    /**
     * 购入日期
     */
    private Date buydate;

    /**
     * 购入金额 元
     */
    private BigDecimal buymoney;

    /**
     * 已行驶里程
     */
    private Double drivemileage;

    /**
     * 初始里程
     */
    private Double initmileage;

    /**
     * RFID卡号
     */
    private String rfidcardnum;

    /**
     * 车辆照片
     */
    private String carpicture;

    /**
     * 油箱纠正值
     */
    @Excel(name = "油箱纠正值(L)",prompt = "真实的油箱容积")
    private String tankvolcheck;

    /**
     * 车辆颜色
     */
    private String carcolor;

    /**
     * 备注
     */
    private String remark;

    /**
     * 运营状态 0 正常 1报废
     */
    private String status;

    /**
     * 驾驶员id
     */
    private String driverid;

    @TableField(exist = false)
    private String driverName;

    /**
     * 绑定状态 0 已绑定 1未绑定
     */
    private String bindstatus;

    /**
     * 绑定设备id集合
     */
    private String bindfaclids;

    private String addr;

    /**
     * 列表展示
     */
    private String bandname;

    /**
     * 行驶证编号
     */
    private String drivinglicense;

    /**
     * 发证日期
     */
    private Date openingdate;

    /**
     * 行驶证主页照片
     */
    private String licensemainpicture;

    /**
     * 行驶证副页照片
     */
    private String licenseotherpicture;

    /**
     * 创建人
     */
    private String createby;

    /**
     * 创建时间
     */
    private Date createtime;

    /**
     * 修改人
     */
    private String updateby;

    /**
     * 修改时间
     */
    private Date updatetime;

    /**
     * 创建部门
     */
    private String deptid;

    private String bindaccount; //已绑定用户id
    //车辆速度
    private Integer speed;
    //车辆开关状态
    private String carStatus;

    private Date inspectionnexttime;//下次年检日期
    private Date insurancenexttime;//保险到期日期
    private Date maintaintimenext;//下次保养日期
    private Double maintainmileagenext;//下次保养里程

    @TableField(exist = false)
    private TlCarModel details;

    @TableField(exist = false)
    private String bindaccountname;

    @TableField(exist = false)
    private String carload;


    @TableField(exist = false)
    private String ransporttype; //转运类型

    @TableField(exist = false)
    private String monitorclearDish; //监控扫盘

    @TableField(exist = false)
    private String monitornozzle; //监测喷头

    @TableField(exist = false)
    private List binds; //绑定信息


    /**
     * 在岗状态：0离岗1在岗
     */
    private Integer onguardstatus;

    /**
     * 当日排班状态：0已排班1未排班
     */
    private Integer shiftStatus;

    //设备编号
    @TableField(exist = false)
    private String equipcode;
    //设备ID
    @TableField(exist = false)
    private String equipid;
    //设备类型
    @TableField(exist = false)
    private String eqptype;

    @TableField(exist = false)
    private List channels;
    @TableField(exist = false)
    private Integer jobType;

    /**
     * 视频在线状态
     */
    @TableField(exist = false)
    private Integer videoonlinestatus;
    /**
     * 是否移动
     */
    private String move;
    /**
     * 是否出勤
     */
    private Integer attendance;
    @TableField(exist = false)
    private List grids = new ArrayList(); //电子围栏

    @TableField(exist = false)
    private List<GridBind> gridBindList = new ArrayList(); //电子围栏id
}
